package com.whsxt.code;

import java.util.Scanner;

/**
 * @author CodeYang
 * @Description 判断一个数的奇 偶 性
 * @Date 2020/12/5 19:39
 */
public class CheckNumerOdd {
    public static void main(String[] args) {
        System.out.println("请输入一个数:");
        Scanner scanner = new Scanner(System.in);

        int number =scanner.nextInt();

        if(checkFunction2(number)){
            System.out.println("奇数");
        }else {
            System.out.println("偶数");
        }

    }

    /**
     *  判断奇数偶数 实现方案一:  (num % 2) == 0 偶数
     * @param num
     * @return true 为奇数 false 为偶数
     */
    public static  boolean checkFunction1(int num){
        if (num % 2 == 0){
            return false;
        }
        return true;
    }

    /**
     * 判断 奇数 偶数 实现方案二:  &位运算符 效率更高,二进制位操作  (num & 1) ==0 偶数
     * 思路:
     *    1> 奇数的二进制的最低为1 偶数的二进制位 为 0
     *    2> & 位与 运算符规则: 位 同为1,才为1,否则为0
     *    3> 案列:   2--->  10
     *               1-->   01
     *               &
     *               ---------
     *                     00  _> 结果是0 但是结果不重要反正是偶数
     *                     3---  11
     *                  &  1 ----01
     *                     ---->  1
     *                         ----两种结果:  0,1 0偶数 1奇数
     * @param num
     * @return 非0 为真, c中0 代表假 1代表真   ----false 代表偶数 ,true ---奇数
     */
    static  boolean checkFunction2(int num){
        if ((num & 1) == 0){
            return  false;
        }
        return true;
    }
}
